The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
The Basic Input/Output System (BIOS) is one of the most crucial components on a computer motherboard. The BIOS firmware is preloaded into a memory (the BIOS memory) of the BIOS, and typically is the first code run by a computer when powered on. When the computer starts up, the first job for the BIOS is the power-on self-test, which initializes and identifies the system devices such as the CPU, RAM, video display card, keyboard and mouse, hard disk drive, optical disc drive and other hardware. The BIOS then locates a boot loader software held on a peripheral device (designated as a “boot device”), such as a hard disk or a CD/DVD, and loads and executes that software, giving it control of the operating system (OS). This process is known as booting, or booting up, which is short for bootstrapping.
The BIOS memory for storing the BIOS firmware is generally a non-volatile chip, such as an EEPROM chip on the motherboard. Typically, a serial peripheral interface (SPI) bus is used for the EEPROM chip. In modern computer systems, contents stored in the BIOS chip can be rewritten without removing it from the motherboard, allowing the BIOS firmware to be upgraded in place. The rewriting process of the BIOS firmware is generally referred to as flashing the BIOS.
Generally, a service processor (SP) or a baseboard management controller (BMC) refers to a specialized microcontroller that manages the interface between system management software and platform hardware. The SP can be embedded on the motherboard of a computer, generally a server. For example, different types of sensors can be built into the computer system, and the SP reads these sensors to obtain parameters such as temperature, cooling fan speeds, power status, operating system (OS) status, etc. The SP monitors the sensors and can send alerts to a system administrator via the network if any of the parameters do not stay within preset limits, indicating a potential failure of the system. The administrator can also remotely communicate with the BMC to take some corrective action such as resetting or power cycling the system to get a hung OS running again. The SP also provides out-of-band (OOB) access to the BIOS.
In a host computer provided with a SP, the SP can be used for flashing the BIOS. Generally, the SP may control the host computer to enter a special state to write the BIOS firmware image to the BIOS chip through the BIOS serial peripheral interface (SPI). However, in case of corruption to the BIOS image in the BIOS chip, the BIOS may fail during its execution, and the booting of the OS may not happen. There is a need to update the BIOS firmware image with the SP when such corruption occurs.
Therefore, an unaddressed need exists in the art to address the aforementioned deficiencies and inadequacies.